package com.canyou.system.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.canyou.system.entity.menu.MenuListVO;
import com.canyou.system.model.Menu;
import com.canyou.system.entity.perm.PermissionTreeVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * Mapper 接口
 * </p>
 *
 * @author canyou
 * @since 2019-05-14
 */
public interface MenuMapper extends BaseMapper<Menu> {

    /**
     * 根据用户ID获取权限列表
     *
     * @param userId
     * @return
     */
    List<Menu> getMenuListByUserId(@Param("userId") Long userId);

    /**
     * 根据菜单Id获取关联角色数
     *
     * @param menuId
     * @return
     */
    int getMenuRoleCount(Long menuId);

    /**
     * 获取所有的菜单
     *
     * @return
     */
    List<PermissionTreeVO> getAllMenuList();

    /**
     * 根据menu类型 获取所菜单, 为空时获取全部
     *
     * @param type 菜单类型（0菜单  1 按钮(弹出)  2按钮(新开)）
     * @return
     */
    List<MenuListVO> getMenuListByType(@Param("type") Integer type);

    /**
     * 根据id删除菜单
     *
     * @param menuId 菜单id
     * @return
     */
    int deleteById(@Param("menuId") Long menuId);

}
